package com.example.networklab.service;

import com.example.networklab.domain.dto.PageDTO;
import com.example.networklab.domain.dto.TaskStatistics;
import com.example.networklab.domain.po.Task;
import com.example.networklab.domain.po.TaskHistory;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.networklab.domain.query.PageQuery;
import com.example.networklab.domain.query.TeaTaskRecordPageQuery;
import com.example.networklab.domain.req.SubmitTaskReq;
import com.example.networklab.domain.vo.*;

import java.util.List;

/**
 * <p>
 * 作业提交记录表 服务类
 * </p>
 *
 * @author dzw
 * @since 2025-02-27
 */
public interface ITaskHistoryService extends IService<TaskHistory> {
    List<TaskStatistics> getTaskStatistics(List<Task> taskList);

    PageDTO<TeaSubmitHistoryVO> teaGetTaskRecord(Long taskId, TeaTaskRecordPageQuery pageQuery);

    void submitTask(SubmitTaskReq submitTaskReq);

    PageDTO<StuSubmitHistoryVO> stuGetTaskHistory(Long taskId, PageQuery pageQuery);

    ConfigVO getTaskHistoryConfig(Long taskHistoryId);

    MaxScoreVO getTaskGrade(Long taskId);
}
